In the design and manufacture of electronic devices, there is a need to validate designs and to ensure that devices provide desired functionality and features. As a result, automated testing has been developed whereby the functionality and features of electronic devices may be tested and verified. As the tested devices have grown in complexity, more complex automated testing systems have also been developed.
Accurate and reliable testing of a device may be crucial to the successful development and production of the device. A flaw in the automated testing procedure may falsely reflect on the performance of the device, thereby causing delays in development and unnecessary losses in production. As such, accurate and reliable testing of a device is crucial to effectively and efficiently developing or manufacturing a product.
The requirements of accurate and efficient automated testing are heightened in a situation where the automated testing is used to assess a product during research and development. Whereas an automated test used for a device in production may not change frequently, an automated test used during research and development may need to provide the ability to rapidly modify tests and generate new tests with short test development times in order to meet the changing testing demands associated with the research and development process.
Automated tests have been carried out using a program operative to control a testing device and gather data with regard to that device. This has traditionally required various contributions from different personnel to ensure proper test development. For instance, a computer programmer might produce the source code through which the automated test is carried out. However, it is likely that the computer programmer coding the automated test has little or no insight into the requirements for the overall testing routine or test flow. The computer programmer, or other like person, developing the testing program may not know what features or components of a new device need to be tested, nor may he or she know the order, total number of tests, or variety of tests necessary for a full assessment of the device. As such, a domain professional (e.g., a testing engineer) may be required to assist the computer programmer in fully capturing the facets of the device that need to be tested. This burdens both the person developing the testing program and the domain professional, causing the development of the testing program to increase in cost and complexity.
Further, a third person may carry out the execution of the tests. In this case, the third person may be required to be as versed in the development and design of the testing program as the computer programmer and testing engineer in order to properly execute the test. In this regard, the development of the testing process must either involve complex coordination and communication across many various sources, or a single, highly trained person that is familiar with the entire test program development, design, and execution. In either instance, the added cost and complexity lead to undesirable conditions for the creation of an automated testing system, especially one designed for products in research and development.
Additionally, the control of ancillary systems (such as graphical user interfaces, computer hardware, communication devices, etc.) necessary to properly carry out the development, design, and execution of the testing programs often has to be redeveloped with each successive testing program created. This leads to increased complexity requiring more time and money to effectively develop, design, and execute testing programs. Changes to tests often require completely new programs, requiring ground-up development of a testing program with each new program. This may lead to long lead times in development and execution of testing programs.
It is against this background that the compact framework for automated testing has been invented.